package com.example.springboot.service;

import com.example.springboot.page.Page;

import java.util.List;
import java.util.Map;

/**
 * @Description: 搜索服务基类
 * @Author wenlinyu
 * @Date: 2021/2/10 11:05
 * @Version 1.0
 */
public interface BaseSearchService<T> {

    /**
     * 搜索
     * @param keyword
     * @param clazz
     * @return
     */
    List<T> query(String keyword, Class<T> clazz);

    /**
     * 搜索高亮显示
     * @param keyword
     * @param indexName
     * @param fieldNames
     * @return
     */
    List<Map<String, Object>> quertHit(String keyword, String indexName, String... fieldNames);

    /**
     * 搜索高亮显示，返回分页
     * @param pageNo
     * @param pageSize
     * @param keyword
     * @param indexName
     * @param fieldNames
     * @return
     */
    Page<Map<String, Object>> quertHitByPage(int pageNo, int pageSize, String keyword, String indexName,
                                             String... fieldNames);

    /**
     * 删除索引库
     * @param indexName
     */
    void deleteIndex(String indexName);
}
